Skip to content

Introduce cut/copy/paste support - #18

Merged
as-cii merged 8 commits into
masterfrom
copy-paste
Apr 14, 2021
Merged

Introduce cut/copy/paste support#18
as-cii merged 8 commits into
masterfrom
copy-paste

Conversation

@as-cii

@as-cii as-cii commented Apr 14, 2021

Copy link
Copy Markdown
Member

This pull request adds support for cutting, copying and pasting text. When cutting/copying from Zed, we will capture additional metadata to allow for a smarter paste behavior when copying full lines or pasting into multiple selections. This should be on-par with Atom and VS Code behavior-wise.

@as-cii as-cii mentioned this pull request Apr 14, 2021
27 tasks
@as-cii
as-cii merged commit fb3a190 into master Apr 14, 2021
@as-cii
as-cii deleted the copy-paste branch April 14, 2021 13:49
@as-cii as-cii mentioned this pull request Apr 27, 2021
Anthony-Eid pushed a commit to Anthony-Eid/zed that referenced this pull request Aug 15, 2024
* Only terminate thread if it did not already end

* Remove debug client when its terminated
Sipaha added a commit to Sipaha/spk-editor that referenced this pull request May 19, 2026
…ask zed-industries#18)

Replaces the inline-base64 image flow with proper chunked upload.
Wire is binary WebSocket frames (no JSON, no base64). 16-byte header
(u64 upload_id + u64 offset, BE) prefixes each chunk's raw bytes.
Server buffers chunks in tmp files keyed by server-generated u64 id;
1h TTL GC. send_message_blocks resolves spk-upload://<id> ResourceLinks
into acp::ContentBlock::Image just before forwarding to ACP, so the
agent sees the same Image block as today. Mobile starts upload the
moment a file is picked; UI shows per-attachment progress; Send is
gated until all uploads complete. Reconnect resume via upload_status;
force-kill resume via per-server EncryptedSharedPreferences. WS cap
dials back from 32 MiB (zed-industries#15 hotfix) to 1 MiB once chunked lands.
Sipaha added a commit to Sipaha/spk-editor that referenced this pull request May 19, 2026
- plan doc ticked for zed-industries#18 (chunked upload) + final 6 commit SHAs appended
- INDEX.md: 3 new rows (chunked upload, cold-session wake, morning fixes)
- one note added re. inverted dep direction (BinaryFrameHandler indirection
  vs original sketch's solution_agent dep, which would have feature-unified
  a second rustls CryptoProvider and broken the TLS handshake)
ShalashaskaOcelot pushed a commit to ShalashaskaOcelot/zed that referenced this pull request Jul 13, 2026
Archive phases 13 (toolbar/gutter), 14 (save-conflict + reload), 15 (counter
reset + clear outputs), and 16 (DataFrame tables) — all user-confirmed
2026-07-11.

Plan the next phases from testing feedback:
- Phase 17: execution status & queue correctness (pending vs running, per-cell
  timing that no longer inherits a long cell's wait, Run All status/tick reset,
  restart/interrupt cancellation, shift-enter-no-kernel skip).
- Phase 18: move execution status/time into the cell (VS Code style) + finish
  centering the gutter run button.
- Phase 19: configurable post-run landing mode (command/edit/remember).

File bugs zed-industries#18 (executing doesn't mark dirty, so external save auto-reloads and
discards runs) and zed-industries#19 (reload doesn't clear the conflict toast). Add backlog
items for multi-select cells, a live elapsed-time counter, and further table
polish.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014eseBDGa7au9r2VxBHeh9X
ShalashaskaOcelot pushed a commit to ShalashaskaOcelot/zed that referenced this pull request Jul 13, 2026
An executed-but-unedited notebook reported itself clean, so an external save
silently auto-reloaded and discarded the run results (outputs + execution
counts), even though that state differs from disk and is savable.

Track it with an execution_state_changed flag OR'd into Item::is_dirty. The
flag is set when a run is submitted or queued, when kernel output/count
messages are routed to a cell, on clear-cell/all-outputs, and on the restart
counter reset; it clears on save (mark_as_saved) and on reload. External
changes now surface the conflict toast instead of silently reloading over an
executed notebook, and the tab dirty indicator reflects execution state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014eseBDGa7au9r2VxBHeh9X
ShalashaskaOcelot pushed a commit to ShalashaskaOcelot/zed that referenced this pull request Jul 13, 2026
 follow-through)

Two defects found in self-review of the bug zed-industries#18 fix, both in the
save-while-a-cell-is-running scenario:

- The dirty flag was set for EVERY kernel message routed to a cell, including
  Status busy/idle broadcasts that change no savable content, so a save
  during a run was immediately re-dirtied for no reason. Only content-bearing
  messages (stream/display data/result/input/error) set it now.

- After our own save, an output arriving before the file watcher delivered
  the Reloaded event made the notebook look dirty again, so
  handle_external_change treated our own write as an external conflict and
  raised the toast. A new last_saved_disk_text field records exactly what we
  last wrote (or loaded/reloaded), and the external-change handler recognizes
  our own save by comparing against it before the dirty check. Recorded on
  open, save, save_as, reload, and external auto-reload.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014eseBDGa7au9r2VxBHeh9X
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants